const bcrypt = require('bcrypt');
const Database = require('better-sqlite3');
const path = require('path');
const db = new Database(path.join(__dirname, 'app.db'), { verbose: console.log });

// 注册新用户（异步）
async function registerUser(loginName, password) {
  const hashedPassword = bcrypt.hashSync(password, 10); // 哈希处理密码
  console.log('登录名:', loginName); // 调试信息
  console.log('密码:', password); // 调试信息

  try {
    const result = db.prepare('INSERT INTO users (login_name, password) VALUES (?, ?)').run(loginName, hashedPassword);
    console.log('插入结果:', result); // 打印插入结果
    return { status: 0, msg: '用户注册成功', userId: result.lastInsertRowid };
  } catch (e) {
    console.error('注册失败:', e); // 打印错误信息
    return { status: 12, msg: e.message };
  }
}




//验证用户登录（异步）
async function validateUser(loginName, password) {
  const user = db.prepare('SELECT * FROM users WHERE login_name = ?').get(loginName); // 只查找用户名

  // 检查用户是否存在
  if (!user) {
    return { status: 404, msg: '用户不存在' }; // 返回404状态和提示
  }

  // 使用 bcrypt 比较密码
  const isPasswordValid = bcrypt.compareSync(password, user.password);
  if (isPasswordValid) {
    return { status: 0, user }; // 返回状态和用户信息
  } else {
    return { status: 401, msg: '无效的凭据' }; // 返回401状态和提示
  }
}


module.exports = { registerUser, validateUser };

